package com.zz.dao;

import com.zz.pojo.Nurse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * Copyright Zz
 * FileName: NurseDao
 * Author:   Zz
 * Date:     2023/6/1017:11
 * Description:护士表Dao层
 * hISTORY:
 * <author>  <time>     <version>    <desc>
 * 作者姓名   修改时间       版本号       描述
 */
@Mapper
@Repository
public interface NurseDao {
    /**
     * 查询指定工号的护士信息
     * @param ID 工号
     * @return 指定工号的护士信息
     */
    Nurse queryNurseByID(@Param("ID") String ID);

    /**
     * 分页查询护士信息
     *
     * @param map startIndex:起始下表 pageSize:页面大小
     * @return 护士list
     */
    List<Nurse> queryNurseList(Map<String, Integer> map);

    /**
     * 查询护士数
     *
     * @return 护士数
     */
    int countNurse();

    /**
     * 通过传入信息查询相关护士信息
     * @param map 模糊查询的信息
     * @return 相关的护士信息
     */
    List<Nurse> queryNurseByKey(Map<String,Object> map);

    /**
     * 查询符合模糊查询条件的护士数量
     * @param map 模糊查询的信息
     * @return 相关的护士信息条数
     */
    int countNurseBykey(Map<String,Object> map);

    /**
     * 增加护士
     *
     * @param nurse 新的护士信息
     * @return 增加记录条数
     */
    int insertNurse(Nurse nurse);

    /**
     * 更新护士信息
     *
     * @param nurse 更新后的护士信息
     * @return 修改记录条数
     */
    int updateNurse(Nurse nurse);

    /**
     * 删除护士
     *
     * @param ID 护士工号
     * @return 删除记录条数
     */
    int deleteNurse(@Param("ID") String ID);
}
